import java.io.FileNotFoundException;

public class Main {
//异常的处理
    public static void OpenCofig(String fileName)throws FileNotFoundException {
        if(fileName.equals("unicod")){
            throw new FileNotFoundException("配置文件异常");
        }
    }
    public static void main(String[] args){//这里不能像下面代码一样糊弄了，需要真正的处理
        try {
            OpenCofig("unicod");//放可能抛出的异常
        }catch (FileNotFoundException e){//catch用于捕获这个异常
            System.out.println("捕获到FileNotFoundException异常----开始处理");
            e.printStackTrace();//这个e用于提示代码错误的地方,从异常产生的房子中调用。但这个会比正常执行慢，会把下方的sout输出后再输出此处的异常
        }finally {
            System.out.println("finally被执行了");
        }
        System.out.println("异常处理完毕。。。。。继续程序的执行");
    }
//    public static void OpenCofig(String fileName)throws FileNotFoundException {
//        if(fileName.equals("unicod")){
//            throw new FileNotFoundException("配置文件异常");
//        }
//    }
//    public static void main(String[] args)throws FileNotFoundException {//上面方法后跟上了异常的声明，所以这里也需要跟上异常的声明
//        OpenCofig("unicod");
//    }

    //
    //
    //
    public static void func(int[] array,int index){
        if(array==null){
            throw new NullPointerException("空指针异常");//空指针异常
        }
        if(index==array.length){
            throw new ArrayIndexOutOfBoundsException("数组越界异常");//括号内可省略
        }
    }
    public static void main1(String[] args) throws ClassNotFoundException, CloneNotSupportedException {
//        int a=10;
//        if(a==10){
//            throw new CloneNotSupportedException();//此时会报异常，需要加上异常声明
//        }
        func(null,0);
    }
}
